﻿using System;
using System.Collections.Generic;
using System.Linq;
using FLH.RegionDataValues;
using MyFloridaHouse.libSvDTO;
using MyFloridaHouse.DataAccess.ExtensionsTS;


namespace MyFloridaHouse.DataAccess
{


    //public static class RegionDataValuesSourceWrapper
    //{
    //    static readonly RegionDataValuesSource regionsDataSource = new RegionDataValuesSource();

    //    public static List<RegionDataValuesModel> GetRegionDataValues(string prefix)
    //    {
    //        return (from item in regionsDataSource.Read(prefix) select item).ToList();
    //    }

    //    public static List<RegionDataValuesModel> GetRegionDataValues(string prefix, int regionID)
    //    {
    //        return (from item in regionsDataSource.Read(prefix, regionID) select item).ToList();
    //    }

    //    public static RegionDataValuesModel GetRegionDataValues(string prefix, int regionID, int dictionaryID)
    //    {
    //        return regionsDataSource.Read(prefix, regionID, dictionaryID);
    //    }
    //}


    //// note: This is partially replacing stored procedure usp_tl10GetRegionsDataInView10
    //public partial class DAL_CensusData
    //{



    //    public List<RegionDataDTO> GetRegionDataValues(int layerID)
    //    {
    //        try
    //        {
    //            // RegionsData are stored in table storage
    //            List<RegionDataValuesModel> itemList = RegionDataValuesSourceWrapper.GetRegionDataValues(DAL_Global.GetPrefixFromLayerID(layerID));
    //            return ConvertRegionDataValuesModelToRegionDataDTO.convertList(itemList);
    //        }
    //        catch (Exception ex)
    //        {
    //            // todo: enable logging for GetDatas
    //            //LogProcess("GetDatas", ex.Message);

    //            return null;
    //        }
    //    }

    //    public List<RegionDataDTO> GetRegionDataValues(int layerID, int regionID)
    //    {
    //        try
    //        {
    //            // RegionsData are stored in table storage
    //            List<RegionDataValuesModel> itemList = RegionDataValuesSourceWrapper.GetRegionDataValues(DAL_Global.GetPrefixFromLayerID(layerID), regionID);
    //            return ConvertRegionDataValuesModelToRegionDataDTO.convertList(itemList);
    //        }
    //        catch (Exception ex)
    //        {
    //            // todo: enable logging for GetDatas
    //            //LogProcess("GetDatas", ex.Message);

    //            return null;
    //        }
    //    }
    //    public List<RegionDataDTO> GetRegionDataValues(int layerID, int regionID, List<int> dictionaryIDList)
    //    {
    //        try
    //        {
    //            // RegionDataValues are stored in table storage, get them one at a time by full key
    //            List<RegionDataValuesModel> itemList = new List<RegionDataValuesModel>();
    //            foreach (var dictionaryID in dictionaryIDList)
    //            {
    //                RegionDataValuesModel currentRecord = RegionDataValuesSourceWrapper.GetRegionDataValues(DAL_Global.GetPrefixFromLayerID(layerID), regionID, dictionaryID);
    //                if (currentRecord != null)
    //                {
    //                    //not an error if we search for a matching targetLayer,targetRegion,sourceLayer - but don't find a sourceRegion; it means there is no data
    //                    itemList.Add(currentRecord);
    //                }
    //            }
    //            return ConvertRegionDataValuesModelToRegionDataDTO.convertList(itemList);

    //        }
    //        catch (Exception ex)
    //        {
    //            // todo: enable logging for GetDatas
    //            //LogProcess("GetDatas", ex.Message);

    //            return null;
    //        }
    //    }

    //    public RegionDataDTO GetRegionDataValue(int layerID, int regionID, int dictionaryID)
    //    {
    //        try
    //        {
    //                RegionDataValuesModel currentRecord = RegionDataValuesSourceWrapper.GetRegionDataValues(DAL_Global.GetPrefixFromLayerID(layerID), regionID, dictionaryID);
    //                return ConvertRegionDataValuesModelToRegionDataDTO.DataContract(currentRecord);

    //        }
    //        catch (Exception ex)
    //        {
    //            // todo: enable logging for GetDatas
    //            //LogProcess("GetDatas", ex.Message);

    //            return null;
    //        }
    //    }


    //}
}
